import { ReqGetBaseCategoryList, ReqGetFloor, ReqGetSlide } from "@/api"

// 存储公共数据
const state = {
    categoryList: [], // 三级分类数据
    slide: [] , //首页轮播图数据
    floor:[] //首页楼层数据
}
// 同步更新state中的数据一般mutations中的方法全部为大写
const mutations = {
    // 更新state 的categoryList[]方法
    SAVE_CATEGORY_LIST(state, value) {
        state.categoryList = value.slice(0, 15)
    },
    // 更新state slide方法
    SAVE_SLIDE_LIST(state, value) {
        state.slide = value;
    },
   //更新state  floor 数据
   SAVE_FLOOR_LIST(state,value){
    state.floor = value;
   }
}
// 异步方法调用mutation中的同步方法更新state的数据
const actions = {
    async GetCategoryList({ commit }) {
        //  调用api请求方法
        let data = await ReqGetBaseCategoryList();
        // 调用mutations更新state数据
        commit("SAVE_CATEGORY_LIST", data)

    },
    //  请求首页轮播图数据
    async GetSlide({ commit }) {
        let data = await ReqGetSlide();
        // 调用mutations更新state数据
        commit("SAVE_SLIDE_LIST", data)

    },
    async GetFloorList({commit}){
        let data = await ReqGetFloor();
        commit("SAVE_FLOOR_LIST",data);
    }
}
// 类似于组件中的计算属性
const getters = {

}
export default {
    namespaced: true,
    state,
    mutations,
    actions,
    getters
}